package com.hfi.security.core.utils;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author ChangLiang
 * @date 2019/8/16
 */
public class Utils {

    /**
     * 在使用正则表达式时 利用好其预编译功能 可以有效加快正则匹配速度
     */
    private static Pattern CHECK_MOBILE_PATTERN = Pattern.compile("^[1][3,4,5,6,7,8,9][0-9]{9}$");

    private static Logger logger = LoggerFactory.getLogger(Utils.class);

    /**
     * 手机号验证
     *
     * @param str
     * @return 验证通过返回true
     */
    public static boolean isMobile(String str) {
        if (StringUtils.isEmpty(str)|| str.length() != 11) {
            return false;
        }
        try {
            Matcher m = CHECK_MOBILE_PATTERN.matcher(str);
            return m.matches();
        } catch (Exception e) {
            logger.error("手机号错误");
            return false;
        }
    }

    /**
     * 密码校验（8-20 数字)
     * @param str
     * @return
     */
    public static boolean matchPassword(String str){
        String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$";
        //String regex = "^[0-9a-zA_Z]+$";//只支持数字加英文
        if(!str.isEmpty()){
            return str.matches(regex);
        }
        return false;
    }
}
